home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / procssng / ccs / ccs-11tl.lha / lbl / xview / genial / func / mframe.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-14  |  1.7 KB  |  87 lines

  1. /*
  2.  * mframe.c -- support for managing multiple frames
  3.  *
  4.  */
  5.  
  6. #include "display.h"
  7. #include "ui.h"
  8.  
  9. adv_frame()
  10. {
  11.     set_watch_cursor();
  12.     orig_img->cframe++;
  13.     /* entire data already loaded, so just need to move pointer */
  14.     orig_img->data = orig_img->data + (orig_img->width * orig_img->height *
  15.                        orig_img->dsize);
  16.  
  17.     extrema(orig_img);
  18.  
  19.     make_lut(orig_img, NCOLORS);
  20.  
  21.     orig_ximg = mk_x_img(orig_img, orig_ximg, 0);
  22.     disp_ximg = mk_x_img(orig_img, disp_ximg, 1);
  23.     printf("frame %d loaded\n", orig_img->cframe);
  24.  
  25.     label_img(orig_img);
  26.     disp_img();
  27.     unset_watch_cursor();
  28.  
  29. #ifdef DEBUG
  30.     printf("adv_frame\n");
  31. #endif
  32. }
  33.  
  34. rev_frame()
  35. {
  36.     set_watch_cursor();
  37.     orig_img->cframe--;
  38.     orig_img->data = orig_img->data - (orig_img->width * orig_img->height *
  39.                        orig_img->dsize);
  40.     extrema(orig_img);
  41.  
  42.     make_lut(orig_img, NCOLORS);
  43.  
  44.     orig_ximg = mk_x_img(orig_img, orig_ximg, 0);
  45.     disp_ximg = mk_x_img(orig_img, disp_ximg, 1);
  46.     printf("frame %d loaded\n", orig_img->cframe);
  47.  
  48.     label_img(orig_img);
  49.     disp_img();
  50.     unset_watch_cursor();
  51.  
  52. #ifdef DEBUG
  53.     printf("rev_frame\n");
  54. #endif
  55. }
  56.  
  57. /* get the current frame number */
  58. curframe()
  59. {
  60.     if (orig_img != NULL)
  61.     return orig_img->cframe;
  62.     else
  63.     return 0;
  64. }
  65.  
  66. /* set the frame buttons based on the position in the image */
  67. set_frame_buttons(img)
  68.     struct img_data *img;
  69. {
  70.     if (img->cframe > 1)
  71.     xv_set(base_win->prev,
  72.            PANEL_INACTIVE, FALSE,
  73.            NULL);
  74.     else
  75.     xv_set(base_win->prev,
  76.            PANEL_INACTIVE, TRUE,
  77.            NULL);
  78.     if (img->cframe < img->nframes)
  79.     xv_set(base_win->next,
  80.            PANEL_INACTIVE, FALSE,
  81.            NULL);
  82.     else
  83.     xv_set(base_win->next,
  84.            PANEL_INACTIVE, TRUE,
  85.            NULL);
  86. }
  87.